package day5;

import org.junit.Test;
import sun.java2d.pipe.AATextRenderer;

public class StringDemo {
    @Test
    public void test1() {
        // "abc"双引号括起来的字符串：常量字符串，他也是一个对象
        // 1.8之后常量池放到堆，在常量池里面找有没有这个"abc"对象，
        // 如果常量池里面没有这个字符串对象，java就帮你在常量池里面new一个"abc"字符串对象。
        // 如果常量池里面有这个字符串，就把这个字符串的地址赋给这个变量。
        // "abc"常量字符串，他也是一个对象
        String str1 = "abc";
        String str2 = new String("abc");
        String str3 = "abc";

        System.out.println(str1 == str2);// false
        System.out.println(str2 == str3);// false
        System.out.println(str1 == str3);// true

        // 比较字符串的内容是不是相等使用equals()
        // 表str1这个字符串和str2这个字符串的内容是不是相等
        System.out.println(str1.equals(str2));//true
        System.out.println(str2.equals(str3));//true
        System.out.println(str1.equals(str3));//true
    }

    @Test
    public void test2() {
        String str = "java AndroidA";
        System.out.println(str.length());// 13
        char[] chars = str.toCharArray();
        char ch = str.charAt(5);
        System.out.println(ch);//A
        System.out.println(str.indexOf('A'));//5
        System.out.println(str.indexOf('A', 6));//12
        System.out.println(str.indexOf("And"));//5
        System.out.println(str.indexOf('X'));//-1

        System.out.println(str.lastIndexOf('A'));//12
    }

    @Test
    public void test3() {
        String str = "java AndroidA";
        String str1 = new String("Java AndroidA");
        System.out.println(str.equals(str1));// false
        System.out.println(str.equalsIgnoreCase(str1));// true
        System.out.println(str.contains("And"));// true
        System.out.println(str.startsWith("java"));//true
        System.out.println(true);//true
        System.out.println(str.endsWith("idA"));//true
        System.out.println(str.isEmpty());//false
        // 空格字符：' '  空字符串："" 也是一个对象
        System.out.println("".isEmpty());//true
    }

    @Test
    public void test4() {
        // "java And"
        char[] array = {'j', 'a', 'v', 'a', ' ', 'A', 'n', 'd'};
        String str = new String(array);
        char[] chars = str.toCharArray();
    }

    @Test
    public void test5() {
        String str = "java AndroidA";
        String newStr = str.replace('A', 'B');
        System.out.println(str);
        System.out.println(newStr);
    }

    @Test
    public void test6() {
        String str = "java Android Python";
        String[] array = str.split(" ");
        for (int i = 0; i < array.length; i++) {
            System.out.println(array[i]);
        }
    }

    @Test
    public void test7() {
        String str = "java AndroidA";
        System.out.println(str.substring(5));//AndroidA
        System.out.println(str.substring(5, 8));//And
    }

    @Test
    public void test8() {
        String str = "   java AndroidA   ";
        System.out.println(str);
        System.out.println(str.trim());

    }

    @Test
    public void test9() {
        String str1 = "java";
        String str2 = "android";
        String str3 = "python";
        String str4 = "php";
        String str = str1 + str2 + str3 + str4;
        System.out.println(str);// javaandroidpythonphp

        StringBuffer stringBuffer = new StringBuffer(str1);
        stringBuffer.append(str2);
        stringBuffer.append(str3);
        stringBuffer.append(str4);
        // stringBuffer.append(str2).append(str3).append(str4);
        System.out.println(stringBuffer);
    }
}
